This invention generally relates to the management of file attachments. More specifically, the invention relates to an attachment management software system comprising a persistent storage mechanism and a set of functions for managing file attachments.
Many computer systems and applications allow the user to attach files to documents or records within application databases. With current systems and applications, there are several difficulties related to the management of file attachments.
For example, commonly, users can attach files of any size and number, and this makes the database grow non-linearly and unpredictably. Also, typically, users who wish to attach the same file attachment in different applications must go to each application and attach a unique copy of the file in each of the applications.
In addition, the security of file attachments is supported by the application being used to perform the attachment. Further, when users make local copies of applications, their network costs are higher due to the copying of attachment files. Other disadvantages of current systems are that attachments made directly within applications cannot be accessed or searched against from outside the application, and that attachments made directly within applications cannot have attributes stored with them defining the attachment (description, use, ownership).
An object of this invention is to make the management of file attachments more robust.
Another object of the present invention is to provide the ability to allow unlimited numbers of attachments that do not affect the application that is used to make the attachment.
A further object of this invention is to provide advanced load balancing, archiving, pruning, searching and categorization of attachments.
These and other objectives are attained with a method of managing attachments in applications, comprising the steps of creating a plurality of attachment databases to contain said attachments, and embedding an attachment engine within said applications for creating, deleting, and re-using said attachments in said plurality of attachment databases. The method further comprises the steps of connecting said plurality of attachment databases to each other, and performing load balancing between said plurality of attachment databases.
Preferably, the method also includes the steps of archiving attachments from the attachment databases under defined conditions, and providing attachment database indexes to keep track of the attachments in the attachment databases. In addition, preferably the embedding step includes the step of embedding a respective one attachment engine within each of said applications.
The invention allows software users to store attachments, retrieve them, make local replicas of them and to archive or prune them. All of these functions use a data store for the attachments that is separate from the storage used by the software application that the attachment management functions is called from. The invention also employs a load balancing mechanism that allows administrators to balance the use of several attachment stores by implementation of a load balancing algorithm. The algorithms and functions provided allow for the creation of local replicas that support use and management of attachments while disconnected from the network.
The invention solves the above-discussed problems through the implementation of a database, such as a Lotus Notes database, which is used to contain attachments. Database forms and views are used to capture information about the attachment (description, type, use, ownership, searchable fields). Additionally an attachment engine is embedded within applications which enable themselves to this attachment management. The attachment engine supports the simple actions of creating, deleting and re-using an existing attachment. The embedded attachment engine communicates with the attachment database for storing and retrieving attachments.
Each attachment database can be connected to other attachment databases through a mechanism that registers the database as belonging within a network of attachment databases. Load balancing algorithms are employed to shift attachments between the attachment databases for optimal performance. The applications using the attachment management mechanism may be kept unaware of the physical location of the attachment. Functions within the attachment databases allow for the database to be defined as playing different roles in the network of attachment databases. An attachment database can be defined as a target for attachments or as a hub defining what other attachment databases make up the network of attachment databases.
Forms and agents are implemented to define archiving and pruning policies which act on attachments automatically. Linkage functions allow the archiving of attachments to host based systems and storage. Attachments are treated as files and sent to the host for archiving into host datasets using the hierarchical storage manager application concepts. Administrators are able to use the forms and agents to automatically manage how attachments are handled.
Each attachment is supported by a security model that associates the originator of the attachment as the owner, with the ability for the owner to specify other users to have access.
Replication features may be used to support local use of attachments. The invention may include extensions to these base features that allow a user to more granularly affect what is replicated to a local replica (users are provided with a form that allows them to indicate which attachments they want to replicate locally).